华为云CCE集群纳管和验证GPU V100裸金属服务器的解决方案 |
您所在的位置:网站首页 › k8s gpu监控 › 华为云CCE集群纳管和验证GPU V100裸金属服务器的解决方案 |
【摘要】 解决如何将GPU V100裸金属服务器纳管至已创建好的华为云CCE集群, 并且在集群安装gpu-device-plugin插件, 根据pytorch2.01镜像创建pod,验证cuda是狗可用。 本文给出端到端详解的步骤, 助力读者快速部署业务。 0. 前言解决如何将GPU V100裸金属服务器纳管至已创建好的华为云CCE集群, 并且在集群安装gpu-device-plugin插件, 根据pytorch2.01镜像创建pod,验证cuda是否可用。 本文给出端到端详解的步骤, 助力读者快速部署业务。 1. 资源准备(1) 在华为云CCE购买集群, 需要选择网络模型为VPC网络; (2) 在华为云ModelArts购买GPU V100裸金属服务器, 需要联系客户经理或提ModelArts工单申请相关权限; (3) 当前GPU V100纳管至CCE集群,需要使用的IMS镜像为euler2.9_x86_nosdi_uefi_ib_40G_20230210v1,需要联系客户经理或提ModelArts工单申请。 2. CCE集群纳管节点-纳管V100裸金属服务器在CCE Console界面选择纳管节点,选择对应的V100裸金属服务器, 需要注意的配置如下 (1) 容器引擎选择Docker; (2) 操作系统选择私有镜像euler2.9_x86_nosdi_uefi_ib_40G_20230210v1; (3) 增加k8s标签: accelerator:nvidia-v100 纳管过程涉及对V100裸金属服务器更换重装操作系统,预计时间在20分钟左右。 3. CCE集群安装gpu-device-plugin插件gpu-device-plugin(原gpu-beta)插件是支持在容器中使用GPU显卡的设备管理插件,集群中使用GPU节点时必须安装本插件。 详细介绍可以参考: gpu-device-plugin(原gpu-beta)_云容器引擎 CCE_用户指南_插件_华为云 (1) 前置条件: 必须在BMS节点上打上标签accelerator:nvidia-v100,方法如下(若步骤2纳管节点时已增加,则可略过) kubectl label nodes 192.168.0.242 accelerator:nvidia-v100 //192.168.0.242为裸金属服务器私有IP若无法执行kubectl,可以配置/root/.kube/config后执行。 (2) 在CCE console插件管理-选择gpu-device-plugin插件进行安装, 安装完成后可看到实例: 可以在CCE集群中对应的A100裸金属服务器节点上执行以下命令,进一步验证GPU插件是否安装成功 在GPU裸金属服务器中执行验证安装是否成功: cd /opt/cloud/cce/nvidia/bin && ./nvidia-smi或在容器中执行如下命令验证: cd /usr/local/nvidia/bin && ./nvidia-smi注意: 该gpu插件仅安装nvidia驱动,并未安装cuda组件,在宿主机若要开发gpu应用仍需自行安装cuda; 容器场景则不涉及。 至此, CCE集群已经成功纳管V100 GPU裸金属服务器,并且可以正常使用k8s pod等资源使用裸金属的GPU算力。 该插件nvidia驱动安装日志请参考: cat /opt/cloud/cce/nvidia/nvidia_installer.log 4. 方案验证: CCE集群中创建pytorch2.0.1 pod验证CUDA的可用性(1) pytorch2.01镜像准备, 拉取pytorch2.0.1镜像, 若无法拉取需要在V100裸金属服务器上绑定弹性IP,使其具备外网访问权限: docker pull pytorch/pytorch:2.0.0-cuda11.7-cudnn8-devel(2) 创建gpu类deployment, 详细使用如下yaml, 可以直接挂在V100的8张GPU卡: apiVersion: apps/v1 kind: Deployment metadata: name: v100-gpu-torch namespace: default spec: progressDeadlineSeconds: 600 replicas: 1 revisionHistoryLimit: 10 selector: matchLabels: app: v100-gpu-torch version: v1 template: metadata: labels: app: v100-gpu-torch version: v1 spec: containers: - command: - sleep - "200000000000000000000000" image: pytorch/pytorch:2.0.0-cuda11.7-cudnn8-devel imagePullPolicy: IfNotPresent name: container-1 resources: limits: cpu: 250m memory: 512Mi nvidia.com/gpu: "8" requests: cpu: 250m memory: 512Mi nvidia.com/gpu: "8" dnsPolicy: ClusterFirst imagePullSecrets: - name: default-secret restartPolicy: Always(3) 查看deployment和pod创建状态, 成功的状态如下: (4) 进入pytorch2.0.1容器, 验证CUDA的可用性: 至此已经验证完成,在已纳管V100 GPU裸金属服务器的CCE集群中, 安装gpu-device-plugin插件后, 可以创建pod正常使用V100的GPU算力。 注意事项: 如果裸金属服务器和想挂载的EVS云硬盘不在一个可用区,是无法创建pod+evs卷调度到该裸金属上的, 二者必须保证在同一个可用区。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |